<!--
 * @docName: businessLicenseUpload.vue
 * @Author: mwl
 * @Date: 9:40
 * @LastEditors: mwl
 * @LastEditTime: 9:40
-->
<template>
  <div class='content-main'>
    <a-form-model ref="ruleForm" :model="channelEntBaseModel" :rules="rules" class="password-retrieval-form">
      <div class="input-info">
        <h2>上传营业执照</h2>
        <a-form-model-item prop="channelName" label="企业名称" :label-col="labelCol" :wrapper-col="wrapperCol">
          <span type="text">{{ channelEntBaseModel.entName }}</span>
          <span v-if='channelData.agreeInfoVo && lockShow'>--</span>
          <span v-if='channelData.agreeInfoVo && lockShow' style='color: #cc0000'>{{ channelData.agreeInfoVo.signName }}</span>
        </a-form-model-item>
        <a-form-model-item label="营业执照" :label-col="labelCol" :wrapper-col="wrapperCol">
          <!-- <UpLoadFile ref="qyfzrxx_business" :config="businessConfig" :fileChangeEvent="(type,fileData)=>{fileChangeEvent(type,fileData)}"></UpLoadFile> -->
          <p-UpLoadFile ref="qyfzrxx_business" :config="businessConfig" v-model="fileObj" :showHelp="false" :customRequestEvent="PUpLoadFileCustomRequestEvent"></p-UpLoadFile>
        </a-form-model-item>
        <a-form-model-item prop="entCreditCode" label="统一社会信用代码" :label-col="labelCol" :wrapper-col="wrapperCol">
          <a-input :disabled='disabled' v-model="channelEntBaseModel.entCreditCode" type="text" />
        </a-form-model-item>
        <a-form-model-item prop="entLegal" label="企业法人" :label-col="labelCol" :wrapper-col="wrapperCol">
          <a-input :disabled='disabled' type="text" v-model="channelEntBaseModel.entLegal" />
        </a-form-model-item>
        <a-form-model-item prop="entAddress" label="注册地" :label-col="labelCol" :wrapper-col="wrapperCol">
          <a-input :disabled='disabled' v-model="channelEntBaseModel.entAddress" type="text" />
        </a-form-model-item>
        <a-form-model-item prop="entBizTerm" label="营业期限" :label-col="labelCol" :wrapper-col="wrapperCol">
          <a-input :disabled='disabled' v-model="channelEntBaseModel.entBizTerm" type="text" />
        </a-form-model-item>
        <a-form-model-item prop="entBizNature" label="经营范围" :label-col="labelCol" :wrapper-col="wrapperCol">
          <a-textarea :disabled='disabled' v-model="channelEntBaseModel.entBizNature"
                      :auto-size="{ minRows: 4, maxRows: 6 }"
          />
        </a-form-model-item>
      </div>
      <a-form>
        <a-form-item :wrapperCol="{span: 3, offset: 3}" v-if='!businessConfig.readonly'>
          <!--        <a-button @click="prevStep">上一步</a-button>-->
          <a-button
            type="primary"
            :loading="registerBtn"
            htmlType="submit"
            @click.stop.prevent="nextStep"
            :disabled="registerBtn"
          >下一步</a-button>
        </a-form-item>
      </a-form>
    </a-form-model>

  </div>
</template>

<script>
import { getCheckBusinessLicense } from '@api/register'

import { getBusinessLicenseOCR } from '@api/api'

const config = {
  // 此参数必填  上传路径
  dir: "/qsb/businessLicense/",
  // 单文件 多文件 身份证  all   ；  单文件 对应 card1 ；   多文件 对应  card3 ； 身份证  对应  card1（身份证正面）、card2（身份证反面）
  model: "单文件",
  // 此参数选填   此属性只在 model= 身份证 时 启用   默认值文false
  showBG: false,
  // 此参数选填  表示是否可编辑
  readonly: false,
  // 提示信息
  tips:{
    card1: '上传营业执照',
  },
  // 此参数选填   文件上传必填校验 默认为false 不校验   当值为true时进行强制校验  需要配合【getDataCheckRes】方法使用；
  // 方法【getDataCheckRes】的具体用法如: this.$refs.UpLoadFile.getDataCheckRes({ card1: "请上传身份证正面",card2: "请上传身份证反面", card3: "请上传附件"});
  // 其中 【getDataCheckRes】的参数辨识检验不通过时对应的提示信息；card1、card2、card3均可缺省，也可选填对应的字段    此参数可空
  required: true,
  // 此参数选填   要回显的数据 card1 card2 的值的格式为：{name:'',url:''} ;  card3 的值的格式为 [{name:'',url:''}，{name:'',url:''}]
  defaultFileList: {
    card1: {},
  },
  // 此参数集必填
  fielConfig: {
    // 允许上传的文件类型 当为空时表示不限制  默认为空
    //    可供选择类型：
    //          图片('jpg', 'png', 'jpeg')
    //          文档('xlsx', 'xls', 'pptx', 'ppt', 'pdf', 'doc', 'docx', 'txt')
    //          压缩包('zip', 'rar')  发票('pdf', 'jpg', 'png', 'jpeg', 'doc', 'docx', 'zip', 'rar')
    //          PDF(pdf)
    //          委托代征协议('pdf','jpg', 'png', 'jpeg')
    //          我的任务('jpg', 'png', 'jpeg','pdf','xlsx', 'xls', 'pdf', 'doc', 'docx','zip', 'rar' )
    // eg:
    //    当值为string类型时，对所有（card1,card2,card3）的有效；
    //    当值为对象（{"card1":'图片',"card2":'文档', "card3":'PDF'}）时，可指定每个（card1/card2/card3）所对应的类型
    type: "图片",
    // 允许上传的文件个数  默认值为1
    // eg: 1 表示只允许上传1个文件；
    //      当值为对象（{"card1":1,"card2":2, "card3":3}）时，可指定每个（card1/card2/card3）所对应的类型
    size: 1,
    // 上传的单个文件大小 单位为 MB  默认值为1
    //  eg: 当值为 number 时，对所有（card1,card2,card3）的有效；
    //        当值为对象（{"pdf":5,"xlsx":10, "zip":100}）时,可指定对应的文件类型的大小（单位：MB）
    singleFileSize: 10,
  },
}
export default {
  name: 'businessLicenseUpload',
  props:['channelData'],
  data () {
    return {
      businessConfig:config,
      businessConfig1: {
        readonly:false,// true文件只读,false文件编辑
        dir:'/qsb/businessLicense/', // 上传文件的地址
        required:true, // 文件上传必填校验 默认为false 不校验   当值为true时进行强制校验
        multiple:false, // 优先级高于isTwo  开启多文件上传  默认值为false   当值为true时表示开启对文件上传，同时 isTwo 和 upLoadCardListConfig 失效
        isTwo:false, // 是否开启两个卡片上传 默认为false  表示只启用单个卡片单文件上传   true 表示开启两个卡片的单文件上传
        upLoadCardListConfig:[
          {type:'1',tips:'上传营业执照',fileInfo:{name:'',url:''}},
        ], // 此项最多可以传两组值 {type:'1',tips:'身份证人像面',backgroundPic:''},
        fielConfig:{
          type:'图片', // 允许上传的文件类型 当为空时表示不限制  默认为空   可供选择类型： 图片  文档  压缩包  发票
          size: 1, // 允许上传的文件个数  默认值为1
          singleFileSize: 10, //上传的单个文件大小 单位为 MB  默认值为1
        }
      },
      registerBtn:false,
      disabled:false,
      lockShow:false,
      fileObj:{},
      channelEntBaseModel:{},
      labelCol: { span:3},
      wrapperCol: { span: 10 },
      rules:{
        entName: [{ required: true, message: '请填写企业名称!' }],
        entCreditCode: [{ required: true, message: '请填写统一社会信用代码!' }],
        entLegal: [{ required: false, message: '请填写企业法人!' }],
        entAddress: [{ required: false, message: '请填写注册地!' }],
        entBizTerm: [{ required: false, message: '请填写营业期限!' }],
        entBizNature: [{ required: false, message: '请填写经营范围!' }],
      },
    }
  },
  mounted() {
  },
  watch:{
    channelData:{
      handler(val){
        this.channelData = val;
        if(val.agreeInfoVo.status == 6 || val.agreeInfoVo.status == 7 || val.agreeInfoVo.status == 8){
          this.businessConfig.readonly = true;
        }
        if (this.channelData.businessLicenseVo) {
          this.channelEntBaseModel = this.channelData.businessLicenseVo;
          if(this.channelData.agreeInfoVo.signName && this.channelData.businessLicenseVo.name){
            if(this.channelData.agreeInfoVo.signName != this.channelData.businessLicenseVo.name){
              this.lockShow = true;
            }
          }
          this.businessConfig.defaultFileList.card1 = {url:this.channelEntBaseModel.entBizLicenseUrl,name:''};
        }
      }
    },
    fileObj:{
      handler(val){
        let params = {};
        params.licenseUrl = val.card1.url
        this.getBusinessLicenseOcrFun(params);
      }
    }
  },
  methods:{
    confirm() {
      this.$confirm({
        title: '证件未识别！',
        content: '请上传清晰有效的证件图片，谢谢合作！',
        okText: '确认',
      });
    },
    /**
     * 废弃
     * @param {*} type
     * @param {*} files
     */
    fileChangeEvent(type,files){
      console.log(type+'==========='+files)
      this.fileObj = files;
      let params = {};
      params.licenseUrl = files.url
      this.getBusinessLicenseOcrFun(params);
    },
    getBusinessLicenseOcrFun(params){
      getBusinessLicenseOCR(params).then(res => {
        if(res.success){
          res.result.urlObj = this.fileObj.card1;
          this.channelEntBaseModel = {
            channelName:res.result.name,
            entName:res.result.name,
            entCreditCode:res.result.regCode,
            entLegal:res.result.legalPerson,
            entAddress:res.result.address,
            entBizTerm:res.result.validPeriod,
            entBizNature:res.result.business,
            entBizLicenseUrl:res.result.urlObj.url,
            entIncorpDate:res.result.establishDate,
            agreeId:this.channelData.agreeInfoVo.id,
            channelId:this.channelData.agreeInfoVo.masterId

          }
          this.lockShow = false;
          if(this.channelData.agreeInfoVo.signName && res.result.name){
            if(this.channelData.agreeInfoVo.signName != res.result.name){
              this.lockShow = true;
            }
          }
        }else{
          // this.confirm();
        }

      })
    },
    nextStep(){
      let params = {};
      params = this.channelEntBaseModel;
      this.$refs.ruleForm.validate(valid => {
        if (valid) {
          getCheckBusinessLicense(params).then((res) => {
            if(res.success){
              this.$emit('processTypeFun',2);
            }else{
              this.$message.warning(res.message);
            }
          })
        } else {
          this.confirm();
          return false;
        }
      });
    }
  }
}
</script>

<style scoped lang='less'>

</style>
